导航菜单
首页 >  用Python操作Word文档看这一篇就对了  > Python办公自动化之Word文档自动化:全网最全,看这一篇就够了!

Python办公自动化之Word文档自动化:全网最全,看这一篇就够了!

https://blog.csdn.net/u014779536/article/details/108418066

环境安装

使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装。

升级pip(便于安装最新库)

代码语言:javascript复制python -m pip install -U pip setuptools

python-docx(我们大部分操作都是使用此库)

安装方法:

代码语言:javascript复制pip install python-docx

使用方法:

代码语言:javascript复制from docx import Documentfrom docx.shared import Inches

官方文档:

https://python-docx.readthedocs.io/en/latest/index.html

win32com(主要用作doc转docx格式转换用)

安装方法:

代码语言:javascript复制pip install pypiwin32

使用方法:

代码语言:javascript复制import win32comfrom win32com.client import Dispatch, constants

官方文档:

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word?view=word-pia

mailmerge(用作按照模板生成大量同类型文档)

安装方法:

代码语言:javascript复制pip install docx-mailmerge

使用方法:

代码语言:javascript复制from mailmerge import MailMerge

官方文档:

https://pypi.org/project/docx-mailmerge/

matplotlib(Python 的绘图库,本期简单讲解,后期会有专门的课程)

安装方法:

代码语言:javascript复制pip install matplotlib

使用方法:

代码语言:javascript复制import matplotlib.pyplot as plt

官方文档:

https://matplotlib.org/3.2.2/tutorials/introductory/sample_plots.html

Python-docx 新建文档

示例代码1:

代码语言:javascript复制from docx import Documentdocument = Document()document.save('new.docx')

效果如下:

示例代码 0.1 Python-docx新建文档.py:

代码语言:javascript复制from docx import Documentdef GenerateNewWord(filename):document = Document()document.save(filename)if __name__ == "__main__":print("大家好!我们今天开始学习word文档自动化")print("我们先来直接生成一个名为‘new.docx’的文档")document = Document()document.save('new.docx')print("没错,里面什么都没有")# 我是华丽的分隔符print("我们使用函数生成一个word文档试试")newname = '使用函数生成的文档.docx'GenerateNewWord(newname)

效果如下:

Python-docx 编辑已存在文档

我们很多时候需要在已存在的word文档上添加自己的内容,那么我们赶紧看看应该怎样操作吧~

旧文档:

代码语言:javascript复制from docx import Documentdocument = Document('exist.docx')document.save('new.docx')

也许你会说,没有没搞错,就这三句话?是的,就这三句,你就完成了旧文档的复制,如果你想修改,直接添加内容就行了呢!

效果如下:

win32com 将 doc 转为 docx

旧文档:

示例代码:

代码语言:javascript复制import osfrom win32com import client as wcdef TransDocToDocx(oldDocName,newDocxName):print("我是 TransDocToDocx 函数")# 打开word应用程序word = wc.Dispatch('Word.Application')# 打开 旧word 文件doc = word.Documents.Open(oldDocName)# 保存为 新word 文件,其中参数 12 表示的是docx文件doc.SaveAs(newDocxName, 12)# 关闭word文档doc.Close()word.Quit()print("生成完毕!")if __name__ == "__main__":# 获取当前目录完整路径currentPath = os.getcwd()print("当前路径为:",currentPath)# 获取 旧doc格式word文件绝对路径名docName = os.path.join(currentPath,'旧doc格式文档.doc')print("docFilePath = ", docName)# 设置新docx格式文档文件名docxName = os.path.join(currentPath,'新生成docx格式文档.docx')TransDocToDocx(docName,docxName)

效果如下:

win32com 操作 word

打开新的word文档并添加内容

示例代码:

代码语言:javascript复制import win32comfrom win32com.client import Dispatch, constantsimport os# 创建新的word文档def funOpenNewFile():word = Dispatch('Word.Application')# 或者使用下面的方法,使用启动独立的进程:# word = DispatchEx('Word.Application')# 如果不

相关推荐: